home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ein
/
sources
/
einlib.lzh
/
LIBSRC.LZH
/
EIN_ASM1.ASM
next >
Wrap
Assembly Source File
|
1994-07-18
|
3KB
|
123 lines
.386p
CGROUP group EIN_ASMFUNC
EIN_ASMFUNC segment public dword 'CODE'
assume cs:EIN_ASMFUNC
; int24ânâôâhâë
align 4
_EIN_errhandle proc far
mov al,3 ; "âVâXâeâÇâRü[âïÄ╕ös"é≡ÄwÆΦ
iretd
_EIN_errhandle endp
;typedef struct _EINSAVEVECT{
; unsigned long realAdr;
; unsigned long *offset;
; unsigned long segment;
;}EINSAVEVECT;
;
;/*<Func>================================================================
;* void EIN_setVector( unsigned long *save );
;*
;* üyèT ùvüz int24hânâôâhâëé╠É▌ÆΦ
;*
;* üyï@ ö\üz
;*
;* üyôⁿ ù═üz *save : î├éóINT24Hânâôâhâëé≡ò█æ╢é╖éΘù╠êµ(12byte)
;* üª typedef struct _EINSAVEVECT{
;* unsigned long realAdr;
;* unsigned long *offset;
;* unsigned long segment;
;* }EINSAVEVECT;
;*
;* üyÆì ê╙üz
;*
;* üyÄQ Å╞üz
;*
;*-----------------------------------------------------------------------
;* V11L10 1994.07.06/Nam
;*</Func>==============================================================*/
public EIN_setVector
db 'EIN_setVector',13
align 4
EIN_setVector proc near
; get para
mov ecx,[esp+4] ; ecx = ê°Éöé╠â|âCâôâ^
push ebp
push ds
push es
push ebx
mov ebp, ecx ; ebp = ê°Éöé╠â|âCâôâ^
; âvâìâeâNâgâéü[âhèäéΦì₧é▌âxâNâ^é≡æ▐ö≡
mov ax,2502h ; 2502h: âlâCâeâBâuèäéΦì₧é▌âxâNâ^ĵô╛
mov cl,24h ; 24h: ĵô╛èäéΦì₧é▌ö╘ìå
int 21h ; ü¿ es:ebx é╔âAâhâîâXé≡ò╘é╖
mov [ebp+4], ebx ; âAâhâîâXé≡ò█æ╢
xor ebx, ebx ; (é▄é╕ebxé≡âNâèâAé╡é─é¿éóé─)
mov bx,es ; (bx = es)
mov [ebp+8], ebx ; âZâOâüâôâgé≡ò█æ╢
; âèâAâïâéü[âhèäéΦì₧é▌âxâNâ^é≡æ▐ö≡
mov ax,2503h ; âèâAâïâéü[âhèäéΦì₧é▌âxâNâ^ĵô╛
int 21h ; ü¿ ebxÅπê╩16bit: âZâOâüâôâgâpâëâOâëât
; ebxë║ê╩16bit: âIâtâZâbâg
mov [ebp],ebx
; âlâCâeâBâuâéü[âhèäéΦì₧é▌é≡ì─É▌ÆΦ
mov ax,2506h ;
mov cl,24h ; 24h: É▌ÆΦèäéΦì₧é▌ö╘ìå
push cs
pop ds ; ds = cs (ânâôâhâëé╠âxü[âXâAâhâîâX)
mov edx,offset _EIN_errhandle ; edx : ânâôâhâëé╓é╠âIâtâZâbâg
int 21h
pop ebx
pop es
pop ds
pop ebp
ret
EIN_setVector endp
;
;/*<Func>================================================================
;* void EIN_resetVector(unsigned long *save );
;*
;* üyèT ùvüz int24hânâôâhâëé≡ò£ïA
;*
;* üyï@ ö\üz
;*
;* üyôⁿ ù═üz *save : î├éóINT24Hânâôâhâëé≡ò█æ╢é╡é╜ù╠êµ(12byte)
;*
;* üyÆì ê╙üz
;*
;* üyÄQ Å╞üz
;*
;*-----------------------------------------------------------------------
;* V11L10 1994.07.06/Nam
;*</Func>==============================================================*/
public EIN_resetVector
db 'EIN_resetVector',15
align 4
EIN_resetVector proc near
mov ecx,[esp+4]
push ebp
mov ebp,ecx ; ebp = ê°Éöé╠â|âCâôâ^
push ds
push ebx
mov ax,2507h ; âèâAâïé╞âlâCâeâBâué╠ânâôâhâëÉ▌ÆΦ
mov cl,24h ; É▌ÆΦèäéΦì₧é▌ö╘ìå
mov ebx, [ebp] ; ebx = âèâAâïèäéΦì₧é▌ânâôâhâë
lds edx, pword ptr [ebp+4] ; ds:edx = âvâìâeâNâgèäéΦì₧é▌ânâôâhâë
int 21h
pop ebx
pop ds
pop ebp
ret
EIN_resetVector endp
EIN_ASMFUNC ends
end